// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import store from './store/index'
import axios from 'axios'
import VueAxios from 'vue-axios'
import router from './router/router'
import wx from 'weixin-js-sdk'
import YDUI from 'vue-ydui';
import 'vue-ydui/dist/ydui.px.css';
// 全局字体
import './common/script/rem.js'

Vue.config.productionTip = false
Vue.use(YDUI)
Vue.use(VueAxios, axios)
// API
global.root = process.env.API_ROOT;
// 存储openid
Vue.prototype.storeToken = function(token){
  store.dispatch('Token', token)
  window.sessionStorage.setItem('token', token)
}

//for test only
// store.dispatch('Token', "oAxta0_4Kz1yeXC90Gv4uUsoHgMM")

Vue.prototype.getToken = function() {
  return window.sessionStorage.getItem('token')
}

/**
 * 初始化微信
 */
// const url = window.location.href.split('#')[0]
// Vue.axios.post(root + '/api/weixin/getJsSdkConfig', { url: url }).then((res) => {
//   const wxdata = res.data.data
//   wx.config({  // 获取微信appid,teimestamp
//     debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
//     appId: wxdata.appId, // 必填，公众号的唯一标识
//     timestamp: wxdata.timestamp, // 必填，生成签名的时间戳
//     nonceStr: wxdata.nonceStr, // 必填，生成签名的随机串
//     signature: wxdata.signature,// 必填，签名，见附录1
//     jsApiList: ['getLocation'] // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
//   })
// })

/**
 * 公共组件
 */
// 公共头部
import publicHead from 'components/publicHead/publichead'
Vue.component('public-head', publicHead)

// 遮罩
import overlay from 'components/overlay/overlay'
Vue.component('overlay', overlay)

// 错误提示
import toast from 'components/toast/toast'
Vue.component('toast', toast)

// 板块无内容
import noitem from 'components/noitem/noitem'
Vue.component('noitem', noitem)

// 加载中
import loading from 'components/loading/loading'
Vue.component('loading', loading)


// 提示方法
Vue.prototype.Toast = function (msg, cb) {
  store.dispatch('show_toast', true)
  store.dispatch('toast_text', msg)
  setTimeout(function () {
    store.dispatch('show_toast', false)
    cb && cb()
  }, 2000)
}

/* eslint-disable no-new */
new Vue({
  el: '#app',
  store, // vuex
  router,
  template: '<App/>',
  components: { App }
})
